Object-oriented applications written in object-oriented programming languages (e.g., Java, Scala, etc.) may involve processing of large volumes of structured or semi-structured data as objects in distributed parallel dataflow processing environments (e.g., Hadoop (MapReduce) or Spark). Input data may be stored (e.g., in a distributed filesystem such as Hadoop Distributed File System (HDFS)) or streamed. Often the objects are complex in nature. For example, an object may be an instance of a class that is deeply nested (i.e., containing other classes or variable-size arrays of other classes; this may be repeated at multiple levels of nesting, for example, with arrays of arrays, etc). Furthermore, polymorphism, a powerful feature of object-oriented programming languages that enables multiple related types of objects to be represented by and processed as instances of a single class, may apply to any class, at any level of nesting.